home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 31
/
Commodore_Free_Issue_31_2009_Commodore_Computer_Club.d64
/
iv m piper
< prev
next >
Wrap
Text File
|
2023-02-26
|
5KB
|
189 lines
u
*************************************
Interview with Martin Piper
Berzerk Redux
By Andrew Fisher
*************************************
http://noname.c64.org/csdb/release/?id
=80567
2009 has seen two fantastic game
releases based on early 1980s games
Fortress of Narzod was converted from
the Vectrex, and now the arcade
classic Berzerk has made the jump to
the C64. Commodore Free talks to
programmer Martin Piper.
Q. How did you become interested in
converting Berzerk to the C64?
I'm relatively old, so I can remember
the arcade machines. So when Trip6
started this thread
http://noname.c64.org/csdb/forums/?roo
mid=11&topicid=58028&showallposts=1 I
was interested to see what he had
actually got. When it turned out to
be C sources it became obvious it
wasn't really the arcade version of
Berzerk which uses Z80(ish). So I
looked for the 6502 Atari version
instead and did a really quick hack
to get it to partially run on the
C64. But the Atari code spent most of
its time in a video update loop so it
was too slow on the C64. Also the
Atari version lacked speech and game
play aspects from the arcade version
so I shelved it.
Then when nobody else came up with a
version I thought to myself that I
would quickly test out the basic
technical requirements to get a feel
for how long it would take to do a
new version. Chiefly these were:
1) Getting NMI samples working with
the multiplexor.
2) Then seeing how many segments of
speech could be squeezed into
realistic memory conditions.
3) Maze generation that did not
produce a blocked route for the
player.
4) Pixel accurate collision detection
or background and sprites (just
like the arcade) using the VIC
registers.
That went surprisingly quickly and
the game play then naturally came
along.
The polish of the game, adding
Zeldin's excellent artwork with sound
effects music and hi-score saving,
actually took longer to code than the
main game. :)
Q. Did you make use of the source
code from other machines?
In this version no, it's all coded
from scratch or using existing
libraries such as the multiplexor,
sound etc.
Q. Did you program it on a real
machine or emulator?
99% of the work used VICE because it
has a couple of my hacks (submitted
to the main tree now) to allow it to
load labels from ACME (also with some
of my hacks) and show extended
register information in the CPU
execution history. This aids
development because it lets me debug
easier than a normal C64. The Alt+W
warp speed feature in VICE also helps
improve development time because I no
longer had to wait for decompression
or loading when testing each new code
iteration. The downside of such
development is that now sometimes I
find myself pressing Alt+W when I am
web browsing or waiting for a large
C++ project compilation to finish...
:)
Only when I wanted to check
everything really works, like the
updated VIC collision register code,
did I test on a real machine. I also
tested on Hoxs64 and CCS64 just to be
sure.
Q. What other utilities did you use
to create the game?
ACME (with some label producing
hacks), my compression utility (on
codebase64), CharPad and SpritePad. I
gather Zeldin used Koala Paint.
Q. How did you transfer the speech
samples and play them in the game?
I found the samples from the old MAME
version at 22kHz 8 bit mono, down
converted them to 6kHz and then
converted them to 4 bit samples using
a quick hack custom tool.
Q. Have you played a real Berzerk
arcade machine in the past?
Yes, once or twice in the dim past.
Mostly I used MAME to check the game
play with this conversion.
Q. Will you be trying to create an
"enhanced" version as some people
have suggested?
Yes. Much better graphics are
planned. I also want to try to
improve the speech a bit more by
getting closer to the raw data using
the LPC decompression that MAME now
uses. Game play will be changed a bit
as well. With better graphics the
"bullet proof bow tie" might have to
go as there won't be a gap between
the head and shoulders for the bullet
to pass through. :( I'm half thinking
of having some boss robots every few
rooms as well, maybe locked doors
that only open after several waves of
robots are cleared, two player, etc.
We will see. :)
Q. Why did you decide to give the
bounty to pay for CSDb's hosting
costs?
I like to be able to help the
community when I can and this version
was only really a few days hacking
around on something I found
interesting. It is a welcome rest
from my normal heavy duty C++
programming. :)
Q. Are you working on any other C64
projects at the moment?
Mainly tweaking common libraries here
and there which are all available for
anyone to use
http://codebase64.org/doku.php?id=proj
ects:resurrection
I'm trying to find sources to
resurrect a couple of old projects I
was working on many years ago. But my
work disks from back then are sadly
not well documented.
Thanks to Martin for answering my
questions, and for all his coding
efforts on Berzerk.
--